package vo
import (
	"encoding/json"
	"time"
)

type GenTableVo struct {
	TableId      int64  `json:"table_id" xorm:"not null pk autoincr comment('编号') BIGINT(20)"`
	TbName       string `gorm:"" json:"tableName"`
	TableComment string `gorm:"" json:"tableComment"`

	//	TbName         string    `json:"tableName"  xorm:"default '' comment('表名称') VARCHAR(200) 'table_name' "`
	//TableComment   string    `json:"tableComment" xorm:"default '' comment('表描述') VARCHAR(500)"`
	CreateBy   string    `json:"create_by" xorm:"default '' comment('创建者') VARCHAR(64)"`
	CreateTime time.Time `gorm:"type:datetime;comment:创建时间;column:create_time;" json:"createTime" time_format:"2006-01-02 15:04:05"`
	UpdateBy   string    `json:"update_by" xorm:"default '' comment('更新者') VARCHAR(64)"`
	UpdateTime time.Time `gorm:"type:datetime;comment:更新时间;" json:"updateTime" time_format:"2006-01-02 15:04:05"`
}

// 映射数据表
func (e *GenTableVo) TableName() string {
	return "gen_table"
}



// 日期格式化
func (t GenTableVo) MarshalJSON() ([]byte, error) {
	type TmpJSON GenTableVo

	var createTimeStr, updateTimeStr string
	if !time.Time(t.CreateTime).IsZero() {
		createTimeStr = t.CreateTime.String()
	}
	if !time.Time(t.UpdateTime).IsZero() {
		updateTimeStr = time.Time(t.UpdateTime).Format("2006-01-02 15:04:05")
	}

	return json.Marshal(&struct {
		TmpJSON
		CreateTime string `json:"createTime"`
		UpdateTime string `json:"updateTime"`
	}{
		TmpJSON:    (TmpJSON)(t),
		CreateTime: createTimeStr,
		UpdateTime: updateTimeStr,
	})
}
